Low Density Parity Code (LDPC) decoder systems are current generation iterative soft-input forward error correction (FEC) decoder systems that have found increasing popularity in FEC applications where low error floor and high performance are desired. LDPC codes are defined in terms of a two-dimensional parity-check matrix, referred to as an H matrix, that represents a set of parity check equations such that cH=0 where c is a codeword of the LDPC code.
An H matrix is a low-density matrix that can be represented by a sparse bipartite graph, known as a Tanner graph. A Tanner graph includes check nodes and variable nodes (otherwise known as bit nodes). For LDPC codes, the check nodes denote rows of the H matrix and the variable nodes represent the columns of the H matrix. An edge of the Tanner graph connects a check node to a variable node if a nonzero entry (i.e., a one) exists in the intersection of the corresponding row and column of the H matrix.
Decoding an LDPC code requires solving a set of parity check equations according to the H matrix. A commonly used decoding method is based on a two-step iterative process that uses soft decisions and is based on the belief propagation method. The process starts by loading the soft values of a LDPC code, such as log-likelihood ratios (LLRs) of a LDPC code, into the variable nodes. In the first half-iteration, each check node takes the output of the connected neighboring variable nodes and calculates a soft value. In the second-half iteration, the soft value at each variable node is updated by combining the soft value at the particular variable node (the variable node information) with the soft values output by the connected neighboring check nodes (the extrinsic information) for use in the subsequent iteration.
A common method for calculating the check node output is the min-sum method, including modified versions thereof such as attenuated min-sum methods or adjusted min-sum methods. In the min-sum method, the magnitude of the check node output is calculated by determining the minimum magnitude of all of the connected neighboring variable nodes and the sign of the check node output is calculated as the one bit binary multiplication of the signs of the connected neighboring variable nodes.
Soft-decoding an LDPC code causes convergence of the solved LDPC code with the true LDPC code for most communication channels. Convergence is achieved over a number of iterations of the two-step iterative process described above and results in a corrected LDPC code without errors.
A category of LDPC codes, known as quasi-cyclic (QC) codes, generates an H matrix with features that improve the ease of implementing an LDPC encoder and decoder.
Current LDPC decoders that perform soft-decision decoding to decode an LDPC codeword require a large memory and significant processing power to decode the LDPC codeword.
Improvements to the layer processing of LDPC codes that reduces the memory size of the LDPC decoder and processing power required to decode the LDPC codeword are therefore desirable.